Перейти к основному содержимому

2.03. URL, URI, URN

Всем

URL, URI, URN

В обыденной жизни мы практически каждый день используем термин «ссылка» и «URL». Более технически продвинутые могут конечно и использовать каталоги, пути и прочее, но давайте в этой части остановимся подробнее.

Собственно, что такое путь (англ. path)? Это часть адреса, указывающая на расположение ресурса на сервере. Он следует после домена и показывает, в какой директории находится нужный файл или страница. Например, в адресе https://example.com/blog/post.html путь — это /blog/post.html.

Но это путь в контексте сети. На самом деле путь может быть у чего угодно, даже C:\Program Files\ или 127.0.0.1 - всё это пути, которые определяют «узлы», разделяемые некими символами - разделителями. К примеру, в классическом пути мы знаем, что разделители это «/» или «\», а какой именно - вопрос контекста. И весь адрес, от корня до конечной точки и будет путём - path. Этот термин применяется в различном контексте - как в файловой системе и сети, так и даже в структурах и сайтах. Но к этому позже не раз вернёмся, главное запомнить суть понятия.

Ссылка — это общий термин, обозначающий любой указатель. В контексте сети, разумеется, это указатель на ресурс в интернете. Чаще всего под ссылкой подразумевают URL, но технически это может быть и любой URI. Понятие URL пользователю привычнее, но на самом деле нам нужно запомнить именно URI.


URI (Uniform Resource Identifier, унифицированный идентификатор ресурса) - это строка символов , которая уникально идентифицирует абстрактный или физический ресурс. То есть URI служит для обозначения чего-либо — будь то веб-страница, изображение, файл, имя человека или даже понятие. Главное — URI называет ресурс, но не обязательно говорит, как его получить.

Структура URI определяется стандартом (RFC 3986) и может включать следующие компоненты:

[схема:][//авторитет][путь][?запрос][#фрагмент]

Пример: https://example.com:8080/api/users?id=123#profile

  • https — схема (протокол)
  • example.com:8080 — авторитет (домен и порт)
  • /api/users — путь
  • ?id=123 — строка запроса (параметры)
  • #profile — фрагмент (якорь)

Существует два основных типа URI:

  • URL (Uniform Resource Locator) — указывает где находится ресурс и как к нему обратиться.
  • URN (Uniform Resource Name) — даёт ресурсу уникальное имя в глобальном пространстве, независимо от его местоположения.

URL (Uniform Resource Locator, унифицированный указатель ресурса) - это частный случай URI (или тип URI), который не только идентифицирует ресурс, но и указывает способ получения этого ресурса — другими словами, определяет его местоположение в сети и протокол доступа к нему. Давайте наглядно:

URIURL
https://learn.microsoft.com/ru-ru//https://learn.microsoft.com/ru-ru//
mailto:support@example.comftp://files.example.net/document.txt
urn:isbn:0451450523http://www.example.org/index.html
Таким образом, URI более широкое понятие, чем URL. URI не обязательно указывает, где он находится или как его получить, А URL указывает путь к ресурсу в интернете, включая информацию о протоколе, сервере.
URL состоит из нескольких ключевых частей:
  • Протокол (схема) — определяет способ доступа к ресурсу. Примеры: http, https, ftp, ws, mailto, file.
  • Домен (или IP-адрес) — имя сервера, где находится ресурс. Пример: example.com, api.github.com.
  • Порт — опциональная часть, указывающая, на какой порт сервера идёт запрос. По умолчанию: 80 для HTTP, 443 для HTTPS. Пример: example.com:8080.
  • Путь (path) — путь к конкретному ресурсу на сервере. Может указывать на:
    • API-приставки — например, /api/v1/users (используется в REST-сервисах),
    • Папки/каталоги — /images/gallery/,
    • Файлы с расширениями — /documents/report.pdf, /index.html.
  • Параметры (query string) — начинаются с ?, передают данные на сервер. Пример: ?search=cat&limit=10. Часто используются в поиске, фильтрации, аналитике.
  • Якорь (fragment, anchor) — начинается с #, указывает на часть страницы (например, заголовок или элемент). Пример: #section-3. Не отправляется на сервер, обрабатывается браузером локально.

URN (Uniform Resource Name, унифицированное имя ресурса) — это тип URI, который называет ресурс уникальным и постоянным образом, независимо от его местоположения. Он не указывает, где взять ресурс, а только кто или что это за ресурс. Пример: urn:isbn:0451450523 — уникальный номер книги, который остаётся неизменным, где бы она ни находилась.

Структура URN:

urn:<namespace>:<identifier>
- urn — обязательная схема.
- <namespace> — пространство имён (например, isbn, uuid, musicbrainz).
- <identifier> — уникальный идентификатор внутри этого пространства.